package lanqiao._02算法训练.page04;

import java.util.Scanner;

/**
 * @author 挚爱之夕
 * @version 1.0
 * @implSpec
 * 问题描述
 * 　　给定N×N的棋盘，问有多少种放置N个车使他们不互相攻击的方案。
 * 输入格式
 * 　　一行一个整数，N。
 * 输出格式
 * 　　一行一个整数，表示方案数。
 * 样例输入
 * 3
 * 样例输出
 * 6
 * 数据规模和约定
 * 　　N<=20
 * @since 2023 - 01 - 02 - 21:53
 */
public class _33N车 {
}
//就是 阶乘 n!
class Main_33_1{
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        long res = 1;
        for(int i = 1; i <= n; i++){
            res *= i;
        }
        System.out.println(res);
    }
}
//dfs 超时
class Main_33{
    static int n;
    static boolean[] vis;
    static int res;
    static void dfs(int row){
        if(row == n){
            res++;
            return;
        }
        for(int i = 0; i < n; i++){
            if(!vis[i]){
                vis[i] = true;
                dfs(row + 1);
                vis[i] = false;
            }
        }
    }
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        n = sc.nextInt();
        vis = new boolean[n];
        dfs(0);
        System.out.println(res);
    }
}
